[Delphi]Listbox如何执行完一行执行下一行并改变当前正在执行item的颜色?

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:47:38
比如我有个listbox,这里面有
1111
2222
3333
4444

4个item,然后我在画一个label控件,一个按钮,我点击按钮启动后,首先读到的是1111,在label显示的也是1111,并且1111那一行变成红色,然后执行完1111后,继续读到2222...以此类推。

希望各位帮帮忙,我大概知道应该是个循环,for i:=0 to listbox1.count-1 do 再往后我就有点迷糊了。。

非常感谢!
for I := 0 to RzListBox1.Items.Count - 1 do
begin
//这个部分是那些代码,字数限制,粘不过来,就314ccp老师写的那个
rzlistbox1.Canvas.TextOut(2,rzlistbox1.ItemHeight*u, rzlistbox1.Items.Strings[u]);
Inc(u);
end;
ms:=RzListBox1.Items.Strings[i]; //这里这里这里 i:string;
chgcmd(@cmda,ms);
cmdcase(cmda); //执行脚本
Sleep(1000);
if i>RzListBox1.ItemIndex then Break;
end;

请问这里的i要怎么赋值呢
我按照的314ccp老师的方法,把代码写在了循环里面,我的程序才会执行,但是只执行了第2行第二行例如2-1这个命令,没有执行第1行,不过好象不是特定的,就有的时候执行第一行,有的时候第二行。我想应该是我注释的那个地方写的不对,还有这个点完一次按钮如果再点一次的话 会弹出一个框框 List Index Out of bounds(2) 不知如何解决。

另外,TheFiend老师那段代码 DrawText(Hand

procedure TForm1.Button1Click(Sender: TObject);

var

  I: Integer;

      Index:   Integer;

      Point:   TPoint;

      DrawRect:   TRect;

  begin

     for I := 0 to Listbox1.Items.Count - 1 do

     begin

      listbox1.ItemIndex:=k;

      if  k  <>  -1 then

      begin

          DrawRect.Left  :=  0  +  1;

          DrawRect.Top  :=  k * listbox1.ItemHe